package com.goodboys.utils;

import com.goodboys.entity.LngLat;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by CJ on 2018-05-19.
 */
public class BaiduLocationUtils {

    /**
     * 计算两点之间距离
     *
     * @return 米
     */
    public static Integer getDistance(LngLat lngLat1,LngLat lngLat2){
        double lat1 = (Math.PI/180)*lngLat1.getLat();
        double lat2 = (Math.PI/180)*lngLat2.getLat();

        double lon1 = (Math.PI/180)*lngLat1.getLng();
        double lon2 = (Math.PI/180)*lngLat2.getLng();

        //地球半径
        double R = 6371;

        //两点间距离 km，如果想要米的话，结果*1000
        double d =  Math.acos(Math.sin(lat1)*Math.sin(lat2)+Math.cos(lat1)*Math.cos(lat2)*Math.cos(lon2-lon1))*R;
        /*if(d<1)
            return (int)(d*1000)+"m";
        else
            return String.format("%.2f",d)+"km";*/
        return (int)(d*1000);
    }

    public static void main(String[] args) {
        LngLat lngLat1 = new LngLat();
        lngLat1.setLat(31.2554826273);
        lngLat1.setLng(120.5831808121);
        LngLat lngLat2 = new LngLat();
        lngLat2.setLat(31.2554823);
        lngLat2.setLng(120.5821);
        Integer distance = BaiduLocationUtils.getDistance(lngLat1, lngLat2);
        System.out.println(distance);

    }
}
